/*
* Sun Public License Notice
*
* The contents of this file are subject to the Sun Public License
* Version 1.0 (the "License"). You may not use this file except in
* compliance with the License. A copy of the License is available at
* http://www.sun.com/
*
* The Original Code is Forte for Java, Community Edition. The Initial
* Developer of the Original Code is Sun Microsystems, Inc. Portions
* Copyright 1997-2000 Sun Microsystems, Inc. All Rights Reserved.
*/
package org.netbeans.modules.utilities;
import java.io.IOException;
import org.openide.TopManager;
import org.openide.NotifyDescriptor;
import org.openide.filesystems.FileObject;
import org.openide.filesystems.FileLock;
import org.openide.filesystems.FileUtil;
import org.openide.loaders.*;
import org.openide.modules.ModuleInstall;
import org.openide.util.NbBundle;
import org.openide.util.RequestProcessor;
import org.openidex.util.Utilities2;
import org.netbeans.modules.url.*;
import org.netbeans.modules.openfile.*;
import org.netbeans.modules.group.CreateGroupAction;
/** ModuleInstall class for Utilities module
*
* @author Jesse Glick, Petr Kuzel, Martin Ryzl
*/
public class Installer extends ModuleInstall {
private final static long serialVersionUID = 1;
private final org.netbeans.modules.search.Installer searchInstaller;
public Installer() {
searchInstaller = new org.netbeans.modules.search.Installer();
}
/** Module installed for the first time. */
public void installed () {
//System.err.println("utilities.Installer.installed");
// -----------------------------------------------------------------------------
// 1. copy Templates
copyURLTemplates ();
copyGroupTemplates ();
// -----------------------------------------------------------------------------
// 2. copy default bookmarks under system/Bookmarks
copyBookmarks ();
// -----------------------------------------------------------------------------
// 3. install Bookmarks action
installActions ();
searchInstaller.installed();
// Don't ask:
RequestProcessor.postRequest (new Runnable () {
public void run () {
Settings.DEFAULT.isRunning ();
}
}, 60000);
}
public void uninstalled () {
// -----------------------------------------------------------------------------
// 1. uninstall Bookmarks action
uninstallActions ();
// OpenFile:
Server.shutdown ();
searchInstaller.uninstalled();
}
public boolean closing () {
// OpenFile:
Server.shutdown ();
return true;
}
public void restored () {
//System.err.println("utilities.Installer.restored");
searchInstaller.restored();
// Don't ask:
RequestProcessor.postRequest (new Runnable () {
public void run () {
Settings.DEFAULT.isRunning ();
}
}, 60000);
}
// -----------------------------------------------------------------------------
// Private methods
private void copyURLTemplates () {
try {
FileUtil.extractJar (
TopManager.getDefault ().getPlaces ().folders().templates ().getPrimaryFile (),
NbBundle.getLocalizedFile ("org.netbeans.modules.url.templates", "jar").openStream () // NOI18N
);
} catch (IOException e) {
TopManager.getDefault ().notifyException (e);
}
}
private void copyGroupTemplates () {
try {
FileUtil.extractJar (
TopManager.getDefault ().getPlaces ().folders().templates ().getPrimaryFile (),
NbBundle.getLocalizedFile ("org.netbeans.modules.group.toinstall.templates", "jar").openStream () // NOI18N
);
} catch (IOException e) {
TopManager.getDefault ().notifyException (e);
}
}
private void copyBookmarks () {
try {
FileUtil.extractJar (
TopManager.getDefault ().getPlaces ().folders().bookmarks ().getPrimaryFile (),
NbBundle.getLocalizedFile ("org.netbeans.modules.url.bookmarks", "jar").openStream () // NOI18N
);
} catch (IOException e) {
TopManager.getDefault ().notifyException (e);
}
}
private void installActions () {
try {
// install into actions pool
Utilities2.createAction (BookmarksAction.class, DataFolder.create (TopManager.getDefault ().getPlaces ().folders ().actions (), "Help")); // NOI18N
Utilities2.createAction (OpenInNewWindowAction.class, DataFolder.create (TopManager.getDefault ().getPlaces ().folders ().actions (), "System")); // NOI18N
// install into menu
Utilities2.createAction (BookmarksAction.class,
DataFolder.create (TopManager.getDefault ().getPlaces ().folders().menus (), "Help"), // NOI18N
"TipOfTheDayAction", false, true, true, false // NOI18N
);
// OpenFile:
Utilities2.createAction (OpenFileAction.class,
DataFolder.create (TopManager.getDefault ().getPlaces ().folders ().menus (), "File"), // NOI18N
"SaveAction", false, true, false, false); // NOI18N
Utilities2.createAction (OpenFileAction.class,
DataFolder.create (TopManager.getDefault ().getPlaces ().folders ().toolbars (), "System"), // NOI18N
"SaveAction", false, true, false, false); // NOI18N
Utilities2.createAction (OpenFileAction.class,
DataFolder.create (TopManager.getDefault ().getPlaces ().folders ().actions (), "System")); // NOI18N
// Group:
Utilities2.createAction (CreateGroupAction.class, DataFolder.create (TopManager.getDefault ().getPlaces ().folders ().actions (), "Tools")); // NOI18N
} catch (Exception e) {
if (System.getProperty ("netbeans.debug.exceptions") != null) { // NOI18N
e.printStackTrace ();
}
// ignore failure to install
}
}
private void uninstallActions () {
try {
// remove from actions pool and menu
Utilities2.removeAction (BookmarksAction.class, DataFolder.create (TopManager.getDefault ().getPlaces ().folders ().actions (), "Help")); // NOI18N
Utilities2.removeAction (OpenInNewWindowAction.class, DataFolder.create (TopManager.getDefault ().getPlaces ().folders ().actions (), "System")); // NOI18N
Utilities2.removeAction (BookmarksAction.class, DataFolder.create (TopManager.getDefault ().getPlaces ().folders().menus (), "Help")); // NOI18N
// OpenFile:
Utilities2.removeAction (OpenFileAction.class, DataFolder.create (TopManager.getDefault ().getPlaces ().folders ().menus (), "File")); // NOI18N
Utilities2.removeAction (OpenFileAction.class, DataFolder.create (TopManager.getDefault ().getPlaces ().folders ().toolbars (), "System")); // NOI18N
Utilities2.removeAction (OpenFileAction.class, DataFolder.create (TopManager.getDefault ().getPlaces ().folders ().actions (), "System")); // NOI18N
// Group:
Utilities2.removeAction (CreateGroupAction.class, DataFolder.create (TopManager.getDefault ().getPlaces ().folders ().actions (), "Tools")); // NOI18N
} catch (Exception e) {
if (System.getProperty ("netbeans.debug.exceptions") != null) { // NOI18N
e.printStackTrace ();
}
// ignore failure to uninstall
}
}
}
/*
* Log
* 10 Gandalf 1.9 1/16/00 Jesse Glick Actions pool; localized
* jars.
* 9 Gandalf 1.8 1/10/00 Jesse Glick OpenFile server now
* started differently.
* 8 Gandalf 1.7 1/5/00 Ian Formanek NOI18N
* 7 Gandalf 1.6 1/5/00 Jesse Glick Should be relative to
* SaveAction, since OB is now installed after OpenFile due to module
* dependencies.
* 6 Gandalf 1.5 1/4/00 Ian Formanek
* 5 Gandalf 1.4 1/4/00 Petr Kuzel Search module.
* 4 Gandalf 1.3 1/4/00 Jesse Glick OpenFile module
* installation.
* 3 Gandalf 1.2 1/4/00 Ian Formanek Uses Utilities2 to
* create/remove actions
* 2 Gandalf 1.1 1/4/00 Ian Formanek Group and URL
* ModuleInstall code added
* 1 Gandalf 1.0 1/4/00 Ian Formanek
* $
*/